package cn.touna.jss.modules.third.dianhuabang.service;

import cn.touna.jss.modules.callback.entity.DianHuaBangCallback;
import cn.touna.jss.modules.third.dianhuabang.entity.CallLogEntity;
import cn.touna.jss.modules.third.dianhuabang.entity.DianHuaBangRequestEntity;
import cn.touna.jss.modules.third.dianhuabang.entity.DianHuaBangResponseEntity;
import cn.touna.risk.api.domain.Response;

import java.util.List;
import java.util.Map;

public interface IDianHuaBangService {

    /**
     * 从聚信立报告原始数据获取通话详情
     * @param request
     * @return
     */
    Response callLogList(DianHuaBangRequestEntity request);

    /**
     * 保存详单sid和回调结果
     * @param dianHuaBangCallback
     */
    void saveRequestHistory(DianHuaBangCallback dianHuaBangCallback);

    /**
     * 通过账单id获取请求记录
     * @param sid
     * @return
     */
    DianHuaBangCallback getDianHuaBangCallbackBySid(String sid);

    /**
     * 更新请求历史
     * @param dianHuaBangCallback
     * @return
     */
    int updateRequestHistory(DianHuaBangCallback dianHuaBangCallback);

    /**
     * 给url做签名
     * @param url
     * @param signature
     * @return
     */
    String signUrl(String url,Map<String,Object> signature);


    /**
     * 获取签名
     *
     * @param apikey    电话邦提供的 apikey
     * @param appsecret  电话邦提供的appsecret
     * @param nonce     1000-9999之间的一个整数
     * @param timestamp 当前时间戳 timestamp
     * @return signature 客户签名
     */
    Map<String,Object> signature(String apikey, String appsecret, Integer nonce, Long timestamp);

    /**
     * 催收请求
     * @param url :请求url
     * @param params:请求参数
     * @return
     */
    DianHuaBangResponseEntity cuishou(String url,String params);
}
